home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Multimedia / AVStoDVD / AVStoDVD_280_Install.exe / MuxMan / BatchMux Usage.txt next >
Text File  |  2008-09-10  |  17KB  |  275 lines

  1. //
  2. //======================================================================//
  3. //= BatchMux - version 1.3: Simple middleware to use MuxMan 0.16.6     =//
  4. //= as a command line application or in batch mode                     =//
  5. //= --> Limited functionalities but - No scripting + C/L interface :-) =//
  6. //======================================================================//
  7. //
  8. // Version 1.3   11-09-2008
  9. // Version 1.2   25-08-2008
  10. // Version 1.1   21-07-2008
  11. // Version 1.0   16-05-2007
  12. // Version 0.9   24-04-2007
  13. // Version 0.8   18-01-2007
  14. // Version 0.7   15-12-2006
  15. // Version 0.6   03-10-2006
  16. // Version 0.5   24-09-2006
  17. // Version 0.4   11-09-2006
  18. // Version 0.3   19-08-2006
  19. // Version 0.2   26-07-2006
  20. // First release 18-07-2006
  21. //
  22. // Changelog:
  23. // 11-09-2008 - Added sanity checks for the lenght of log file path and
  24. //              destination folder (both should not exceed 120 characters)
  25. //            - Added -progtc, -progfr, -chaptc, -chapfr switches
  26. //              to support the generation of programs and chapters
  27. //              in the DVD compilation
  28. //            - Bugfix. Corrected a mistake, introduced in version 1.2,
  29. //              concerning the wrong attribution of chapters in multi-title
  30. //              compilations
  31. // 25-08-2008 - First release supporting multipage menues, hardcoded
  32. //              organisation and navigation
  33. //            - Completely reworked the harcoded navigation for static and
  34. //              motion menus
  35. //            - Removed all -hcni switches; now the navigation is partially
  36. //              configurable by means of a proper cfg file
  37. //            - Added -hcn file_name switch, to support the configuration
  38. //              of the hardcoded navigation
  39. //            - Changed the default assignement, in the mxp output, of the
  40. //              -[SEGi]hlbset[_j] argument. Now it is set to -1, instead
  41. //              of 00:00:00:00; same as for the -[SEGi]hldurat[_j] argument
  42. //            - Radically improved the DVD navigation: now supporting
  43. //              prev&next title jump, the resume function and the titles
  44. //              are now all one-sequential
  45. // 21-07-2008 - Added -prio argument, to set the exec priority of MuxMan.exe
  46. //            - Added -hcn3 and -hcn4 arguments
  47. // 16-05-2007 - First release supporting menues, hardcoded organisation
  48. //              and navigation
  49. //            - Added -hcn1 and -hcn2 arguments
  50. // 24-04-2007 - Introduced the "Content Section" and the "Organisation and
  51. //              Navigation Section" concepts, as first steps to support menus
  52. //            - Added highlight items in the structure of Segments to support
  53. //              highlight streams
  54. //            - Added -[SEGi]hlstart[_j] hh:mm:ss:ff argument
  55. //            - Added -[SEGi]hldurat[_j] hh:mm:ss:ff argument
  56. //            - Added -[SEGi]hlmnu[_j] filename argument
  57. //            - Added -[SEGi]hlbset[_j] hh:mm:ss:ff argument
  58. //            - Added -[SEGi]hlbutm{l}[_j] argument
  59. //            - Added -[SEGi]hloffsbutnr[_j] argument
  60. //            - Added -[SEGi]hlnumselbut[_j] argument
  61. //            - Added -[SEGi]hlfselbutnr[_j] argument
  62. //            - Added -[SEGi]hlfactbutnr[_j] argument
  63. //            - Added -[SEGi]hlcsm[_j] filename argument
  64. //            - Added -[SEGi]but{k}g{l}[_j] filename argument
  65. //            - Bugfix. File list composer was broken. The bug was introduced
  66. //              in the reworking and cleaning up of release 0.8
  67. // 18-01-2007 - Huge cleanup and significant improvements aimed at preparing
  68. //              for the implementation of menus within BatchMux
  69. //            - Bugfix. Not all 32 subtitle streams were properly implemented
  70. //              in release 0.7. Arguments accepted but the mxp content was
  71. //              limited to 8
  72. //            - Bugfix. -norun option was not properly implemented
  73. //            - Bugfix. -ailang option was not properly implemented
  74. //            - Bugfix. -aidelay option was not properly implemented
  75. //            - Reworked, once more, the segment structures (now everything
  76. //              is dynamic)
  77. //            - Changed, with significant simplifications, the whole error
  78. //              handling concept and procedures
  79. //            - Extended to 999 the max number of segments supported by the
  80. //              application
  81. //            - Added support to BMP as valid assets for the video segments
  82. //            - Added -[SEGi]vduration[_j] argument
  83. // 15-12-2006 - Improved. Supporting now up to 8 audio streams and 32 subtitle
  84. //              streams.
  85. //            - Removed "BatchMux:" from the printout text of many params
  86. //            - Added support of file lists to compose the video and audio
  87. //              assets for each segment; this should be helpful for avoiding
  88. //              copy operations and speed up things in multicore environments
  89. //            - Added the -arglist argument, in order to enable an easier
  90. //              handling of the argument list (especially useful for long, or
  91. //              very long argument lists)
  92. // 03-10-2006 - Bugfix. In case no celltimes is specified, an invalid time
  93. //              reference is generated in the mxp file
  94. //            - Bugfix. Missing "break" statement after parsing of "vidmode"
  95. //              argument
  96. //            - Improved. In case DvdPreparer not set, then no need to change
  97. //              VIDEO_TS.IFO and VIDEO_TS.BUP
  98. // 24-09-2006 - Completely reworked the memory usage. Now many structures are
  99. //              allocated dinamically
  100. //            - Reworked and reordered arguments in order to support multi VTS
  101. //              authoring (with navigation hardcoded...). If not present, the
  102. //              optional "SEGi" prefix of the segment arguments, with i in the
  103. //              range 2 ... 99, represents a compatibility mode with previous
  104. //              releases of BatchMux.exe. This simplifies the syntax in case
  105. //              just a single VTS is needed. If present, the tag enables the
  106. //              authoring of additional segments, other than the first, in a
  107. //              simple authoring structure (each additional segment lead to an
  108. //              additional separate VTS, with a single title, and a single pgc
  109. //              per segment)
  110. // 11-09-2006 - Added the -preparer argument; Note: it is overridden by -norun
  111. //            - Improved formatting of log information
  112. // 19-08-2006 - Changed stdout to stderr for the error messages...
  113. //            - Changed the default assignement of subpicture streams display
  114. //              mode; now it is depending on the actual Video Stream AR (both
  115. //              MPEG-2 and MPEG-1): in case the AR is 4:3 it is not harmful to
  116. //              leave the default display mode as unspecified; on the other
  117. //              hand, if the Video Stream AR is 16:9, the DEFAULT subpicture
  118. //              stream display mode is set as WIDE_LB. This should prevent
  119. //              possible unwanted skipping of subpicture streams in the
  120. //              authoring due to not setting of their display mode...
  121. //            - Added the -palette argument, pointing to an ascii file
  122. //              containing the palette colour entries to redefine the default
  123. //              palette of MuxMan.
  124. // 26-07-2006 - Version 0.2
  125. //            - Added the revision history - also in the help printout.
  126. //            - Added the -muxman argument, in order to specify
  127. //              the location of the MuxMan.exe executable.
  128. // 18-07-2006 - First Release
  129. //
  130. // Arguments:
  131. //
  132. // ---------------------------------------------------------------------------
  133. // -------- General Arguments ------------------------------------------------
  134. // ---------------------------------------------------------------------------
  135. // -arglist file_name, optional; if this mode (and argument) is used, no other
  136. //    arguments should be present; file_name should be a text file containing
  137. //    all of the other BatchMux arguments, ONE SINGLE LINE CONTAINING two
  138. //    strings ([arg] [val]) separated by spaces and optionally delimited by "
  139. // -d destination_folder, mandatory
  140. // -mxp target script_file, optional; default to C:BatchMux.mxp
  141. // -l log_file, optional; default to C:MuxMan.log
  142. // -muxman folder, place where to look for the MuxMan.exe file, optional,
  143. //    default NULL string, meaning the same folder where BatchMux is executed
  144. // -palette palette_file, optional; PgcEdit compatible ascii file containing
  145. //    16 colour entries (index, red, green, blue) adopted for redefining the
  146. //    default color palette used by MuxMan
  147. // -preparer "32_char_string"; optional copyright string setting the DVD
  148. //    preparer field in the VIDEO_TS.IFO and VIDEO_TS.BUP files. Note: it is
  149. //    overridden by the -norun option
  150. // -norun allows to open the MuxMan GUI, to load the script file and to stop
  151. // -prio REALTIME | HIGH | ABOVENORMAL | NORMAL | BELOWNORMAL | LOW
  152. //    allows to launch MuxMan with a given execution priority, optional,
  153. //    default to NORMAL
  154. // ---------------------------------------------------------------------------
  155. // -------- Content Section Arguments ----------------------------------------
  156. // ---------------------------------------------------------------------------
  157. // ======== VIDEO ========
  158. // -[SEGi]v[_j] video_file[s], mandatory; note: in all of the arguments with
  159. //    the "SEGi" prefix, the i index should be an integer value, in the range
  160. //    [2...999]; also, segments sequence should be progressive: e.g if segment
  161. //    4 is missed, all segment arguments from 5 to 999, if present, are
  162. //    ignored; the [_j] extension, with j in the range [2..99], allows to join
  163. //    a file list (in a plain, sequential way), to compose the asset of the
  164. //    given segment
  165. // -[SEGi]vidmode 4:3 | PS_LB | PS | LB display mode for the video asset,
  166. //    optional, if present and compatible with the actual video mode, it is
  167. //    honored, based on the authoring application rules; if not present, it is
  168. //    not included in the script
  169. // -[SEGi]vduration[_j] ACTUAL | DEFAULT | hh:mm:ss:ff, duration of the video
  170. //    play item, optional; default DEFAULT. Duration=ACTUAL is valid for
  171. //    motion video only. For the last file of the list Duration=DEFAULT means
  172. //    until the audio track ends. For other positions in the list it means:
  173. //    15 frames for stills (image or single frame mpeg); 5 sec. for stillshow
  174. //    video (multiple I frames with a sequence end code for each frame);
  175. //    actual duration for motion video
  176. // ======== AUDIO ========
  177. // -[SEGi]a1[_j] audio1_file[s] ... -[SEGi]a8[_j] audio8_file[s]; all
  178. //    optional; the [_j] extension, with j in the range [2..99], allows to
  179. //    join a file list (in a plain, sequential way), to compose the asset[s]
  180. //    of the given segment
  181. // -[SEGi]a1lang xx ... -[SEGi]a8lang xx two characters language code for the
  182. //    audio assets, all optional; default unspecified
  183. // -[SEGi]a1ext 0|1|2|3|4 ... -[SEGi]a8ext 0|1|2|3|4 language extensions for
  184. //    the audio assets, where 0 --> unspecified, 1 --> normal, 2 --> visually
  185. //    impaired, 3 --> director comments, 4 --> alternate director comments;
  186. //    all optional; default 1 - normal
  187. // -[SEGi]a1delay xxx ... -[SEGi]a8delay xxx audio delays, positive and
  188. //    negative values, in ms, in the range [-300...300]; all optional;
  189. //    default 0
  190. // ======== SUBPICTURES ========
  191. // -[SEGi]s1 subpic1_file ... -[SEGi]s32 subpic32_file; all optional
  192. // -[SEGi]s1lang xx ... -[SEGi]s32lang xx two characters language code for the
  193. //    subpic files, default unspecified
  194. // -[SEGi]s1ext 0|1|2|3|5|6|7|9|13|14|15 ...
  195. //    -[SEGi]s32ext 0|1|2|3|5|6|7|9|13|14|15
  196. //    language extensions for the subpicture files, where 0 --> unspecified,
  197. //    1 --> normal, 2 --> large, 3 --> children 5 --> normal captions,
  198. //    6 --> large captions, 7 --> children captions, 9 --> forced,
  199. //    13 --> director comments, 14 --> large director comments,
  200. //    15 --> children director comments; all optional; default 1 - normal
  201. // -[SEGi]s1dmode LB | PAN | LB_PAN | WIDE | WIDE_LB | WIDE_PAN | WIDE_LB_PAN
  202. //    ... -[SEGi]s32dmode LB | PAN | LB_PAN | WIDE | WIDE_LB | WIDE_PAN |
  203. //    WIDE_LB_PAN display modes and track assignement for the subpicture
  204. //    streams; all optional; default --> WIDE_LB if video A/R is 16:9,
  205. //    unspecified if video A/R is 4:3
  206. // ======== HIGHLIGHTS =========
  207. // -[SEGi]hlstart[_j] hh:mm:ss:ff; highlight start time, relative to start of
  208. //    video segment; default 00:00:00:00
  209. // -[SEGi]hldurat[_j] hh:mm:ss:ff; highlight duration, relative to start of
  210. //    highlight; default 00:00:00:00
  211. // -[SEGi]hlmnu[_j] menu_file; in PgcEdit mnu format; all mnu items may be
  212. //    overridden by other hl arguments (see below), if present
  213. // -[SEGi]hlbset[_j] hh:mm:ss:ff; button selection end time, relative to
  214. //    start of highlight; default 00:00:00:00
  215. // -[SEGi]hlbutm{l}[_j] NORMAL | LB | PAN | WIDE; display mode for group {l}
  216. //    buttons; l=1,2,3; default --> NORMAL, i.e. unspecified
  217. // -[SEGi]hloffsbutnr[_j] 0..36; highlight start button number; default 0
  218. // -[SEGi]hlnumselbut[_j] 0..36; number of buttons selectable with the remote;
  219. //    default 0
  220. // -[SEGi]hlfselbutnr[_j] 0..36; force selected button number; default 0
  221. // -[SEGi]hlfactbutnr[_j] 0..36; force activated button number; default 0
  222. // -[SEGi]hlcsm[_j] color_scheme_file; in PgcEdit csm format
  223. // -[SEGi]but{k}g{l}[_j] button_file; in PgcEdit gbv format, where {k} is the
  224. //    button ID and {l} is the group ID --> {k} == 1 ... 36 and {l} == 1, 2, 3
  225. // ======== CHAPTERS, PROGRAMS, CELLS ========
  226. // -[SEGi]celltc timecode_file; optional file containing timecode boundaries
  227. //    for the cells in the hh:mm:ss:ff - 11 char fixed ndtc format
  228. // -[SEGi]cellfr framecnt_file; optional file containing framecount boundaries
  229. //    for the cells in the "usual" CellTimes format - plain frame indexes
  230. // -[SEGi]progtc timecode_file; optional file containing timecode boundaries
  231. //    for the programs in the hh:mm:ss:ff - 11 char fixed ndtc format -
  232. //    program boundaries must be a subset of the cell boundaries;
  233. //    default (no timecode_file) --> 1 SINGLE PROGRAM for the segment
  234. // -[SEGi]progfr framecnt_file; optional file containing framecount boundaries
  235. //    for the programs - plain frame indexes format - program boundaries must
  236. //    be a subset of the cell boundaries;
  237. //    default (no framecnt_file) --> 1 SINGLE PROGRAM for the segment
  238. // -[SEGi]chaptc timecode_file; optional file containing timecode boundaries
  239. //    for the chapters in the hh:mm:ss:ff - 11 char fixed ndtc format -
  240. //    chapter boundaries must be a subset of the program boundaries;
  241. //    default (no timecode_file) --> 1 SINGLE CHAPTER for the segment
  242. // -[SEGi]chapfr framecnt_file; optional file containing framecount boundaries
  243. //    for the chapters - plain frame indexes format - program boundaries
  244. //    must be a subset of the program boundaries;
  245. //    default (no framecnt_file) --> 1 SINGLE CHAPTER for the segment
  246. // ---------------------------------------------------------------------------
  247. // -------- Organisation and Navigation Section Arguments --------------------
  248. // ---------------------------------------------------------------------------
  249. // -hcn file_name; hard coded navigation with static, motion, single page or
  250. //    multipage menus; interim solution providing the placement of the last
  251. //    segment(s) in the VMG domain as different page menus
  252.  
  253.  
  254.  
  255. Rationale for this tool:
  256. 1. Simplicity and straight usage. Even though MuxMan fully supports command
  257.    line arguments, the usage of the whole set of parameters available in the
  258.    GUI is only possible through scripting. The compilation of a MuxMan script
  259.    is very easy indeed - it is sufficient to load files and parametes in the
  260.    GUI and save the project. Anyway the straight command line control provided
  261.    by BatchMux is direct, simple, and it should like to users not familiar or
  262.    not interested in mxp scripting.
  263. 2. Enabling of automation for existing applications. The usage of MuxMan as
  264.    a reference authoring application should be encouraged as much as possible.
  265.    The quality of its output is significantly better respect to other authoring
  266.    packages, getting rid - definitely - of "stuttering", "freezing" and other
  267.    sad effects, mostly caused by the bad quality of the mux and authoring.
  268.    The direct integration of MuxMan, as authoring engine into thirdy party
  269.    applications, may turn out as being not possible (or too complex, due to
  270.    the need of creating the mxp MuxMan script).
  271.    BatchMux may be helpful in this sort of scenarios...
  272.  
  273. Usage: launc BatchMux with the above arguments... No argument, or -help for
  274.    printing out the full listing of CLI arguments... 
  275.